package cn.wolfcode.domain;

import cn.hutool.core.date.DateUtil;
import cn.wolfcode.util.AppointmentStatusEnum;
import com.alibaba.fastjson.JSON;
import lombok.Getter;
import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;
import java.util.HashMap;
import java.util.Map;


@Getter
@Setter
public class Appointment {
    /**
     * 主键
     */
    private Long id;

    /**
     * 预约单流水号
     */
    private String ano;

    /**
     * 预约单状态 （预约中/履行中/消费中/归档/废弃单）
     */
    private Integer status;

    /**
     * 业务大类
     */
    private SystemDictionaryItem category;

    /**
     * 预约说明
     */
    private String info;

    /**
     * 联系电话
     */
    private String contact_tel;

    /**
     * 联系人名称
     */
    private String contact_name;

    /**
     * 预约门店
     */
    private Business business;

    /**
     * 创建时间
     */
    private Date create_time;

    /**
     * 预约时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
    private Date appointment_time;


    //通过当前对象的status作为参数 通过枚举类的静态方法获取对应的name
    public String findName() {
        return AppointmentStatusEnum.findName(status);
    }

    //用于回显数据
    public String toJson(){
        Map<Object, Object> map = new HashMap<>();
        map.put("id",id);
        if(category != null){
            map.put("categoryId" , category.getId());
        }
        if(business != null){
            map.put("businessId" , business.getId());
        }

        map.put("info" , info);
        map.put("appointmentTime", DateUtil.format(appointment_time,"yyyy-MM-dd HH:mm"));
        map.put("contact_tel" , contact_tel);
        map.put("contact_name" , contact_name);

        return JSON.toJSONString(map);
    }

}